perm filename CODE4.FAI[NEW,LCS]12 blob
sn#573329 filedate 1981-03-15 generic text, type T, neo UTF8
00100 TITLE ITMSUB
00200 INTERNAL ITMSUB
00300 EXTERNAL BM,NOZERO,LINX,ROFF,CENTX,STF,LINES,.COMM.
00400 EXTERNAL DAT,RHORZ,CLEFS,PLTR,MIN,POSI,ALF,RDRAW,OLDTOP
00500 DEFINE R9 <.COMM.+=10 >↔ DEFINE R8<.COMM.+=9 >
00600 DEFINE J2 <.COMM.+3 >↔ DEFINE J10 <.COMM.+=31 >
00700 DEFINE J7 <.COMM.+=28 >
00800 ;;OLDTOP: 0
00900 ; 00300 SUBROUTINE ITMSUB
01000 ; 00400 IMPLICIT INTEGER(A-Q,S-Z)
01100 ; 00500 REAL DIS,DISX,HGT,POS,CENTR,STFF,HGT1,XDIS
01200 ; 00600 COMMON/STF/RSTFAC(0/7),RSTJ2/MIN/MINI,RMINI
01300 ; 00700 COMMON R2,JA,CENTR,J2,RJQ(20),JQ(16),RE,RF,RG,RH/BM/RA,RC,RJY
01400 ; 00800 COMMON/POSI/STFF(0/7),JJ2,POS/PLTR/PLT,RHT,DIS,XDIS
01500 ; 00900 COMMON/ALF/QQ(3),RST7,RST18,R3Q,JY,RD,RX,RW,RJX,RJ,L,K,
01600 ; 01000 1 RJA,YY,DISX,HGT,RZ,INP(53)
01700 ; 01100 COMMON/DAT/RACNT(65),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)
01800 ; 01200 EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(R11,
01900 ; 01300 1RJQ(9)),(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8))
02000 ; 01400 1,(J11,JQ(9)),(J6,JQ(4)),(R9,RJQ(7)),(R8,RJQ(6)),(R3,RJQ(1))
02100 ; 01500 1 ,(R7,RJQ(5)),(R4,RJQ(2)),(R9,RJQ(7)),(R10,RJQ(8)),(RX3,RJQ(20))
02200 ; 01600 DATA R14/14.54/,RTF/3.0/,RHGT/48.0/,R2HGT/96.0/,RBM/.83/
02300 ; 01700 1,RDBR/ 3.5/,RBR/.33/,RBX/ 7.0/
02400 ITMSUB: 0 ;01800 C RDBR IS SPACER FOR DBL BAR.
02500 MOVSI 3,203700 ; 02000 RST7=RSTJ2*7.
02600 FMPR 3,STF+=8
02700 MOVEM 3,ALF+3 ; 02100 RST18=RSTJ2*18.
02800 MOVSI 02,205440
02900 FMPR 2,STF+=8
03000 MOVEM 02,ALF+4 ;2200 C TO COMPENSATE FOR NOTE #3 COMING AT POS=0
03100 MOVE 02,.COMM.+4 ;02400 R3Q=R3
03200 MOVEM 02,ALF+5 ; C NEXT DRAWS STRAIGHT LINES
03300 FMPR 3,.COMM.+5 ; 02700 RD=R4*RST7
03400 MOVEM 3,ALF+7 ; 02800 RA=0
03500 SETZM BM ; 02900 RX=RTF*RSTJ2+POS
03600 MOVE 02,[3.0]
03700 FMPR 02,STF+=8
03800 FADR 02,POSI+=9
03900 MOVEM 02,ALF+=8 ; XDIS=1./DIS > TO REPLACE ALL 1./DIS'S
04000 ; 03010 J10=J10*DIS*RSTJ2
04100 FLTR 4,J10 ;MOVE 4,.COMM.+=31
04200 FMPR 4,PLTR+2
04300 FMPR 4,STF+=8
04400 KIFIX 0,4 ;JSA 16,IFIX
04500 MOVEM 0,J10
04600 ; THICKNESS DEPENDS ON FINAL SIZE FACTOR (DIS) AND STAFF SIZE.(???!!)
04700 ;;; MOVEI 02,62 ; 03100 IF(J5.EQ.50)GO TO 300
04800 ;;; CAMN 02,.COMM.+=26
04900 MOVE 2,.COMM.+=26 ;IF(J5.EQ.50.OR.J5.EQ.150)GO TO 300
05000 CAIE 2,=50
05100 CAIN 2,=150 ;150 IS FOR 'PARTS' FEATURE - PUTS CRESC. IN ALL.
05200 JRST I300
05300 SKIPN .COMM.+7 ;03300 IF(R6.NE.0)GO TO 401
05400 SKIPE .COMM.+=28
05500 JRST I401 ; IF(J7.NE.0)GO TO 401
05600 ; 03500 C FOR BAR LINES
05700 MOVEI 02,54 ; 03600 4000 JA=44
05800 MOVEM 02,.COMM.+1 ;CODE # IS CHNGD SO BAR LINES WON'T AFFECT MAX. HGT.
05900 ; ↑↑↑↑↑↑↑↑↑ FOR VERTICAL WIGGLE (P6=0, P7=-1)
06000 SETZM DBR# ; 03900 DBR=0
06100 MOVE 2,.COMM.+=25 ;04000 IF(J4.LT.1000)GO TO 400
06200 CAIGE 2,1750
06300 JRST I400
06400 ; J4=1001 = DBL BAR, =1401 = DBL BAR WITH RT. ONE HEAVY: J5=1=DOTS ADDED
06500 ; 04500 DBR=J4/1000
06600 IDIVI 02,1750
06700 SKIPN .COMM.+=26 ;IF(J5.NE.0)GO TO RPTBAR
06800 CAIG 2,1 ;IF(DBR.LT.2)GO TO RPTBAR
06900 JRST RPTBAR
07000 AOS .COMM.+=26 ;J5=1
07100 CAIN 2,4 ;IF(DBR.EQ.4)DBR=1
07200 MOVEI 2,1
07300 MOVEM 2,DBR ;FOR REPEAT DBL.BAR WITH P5=0
07400 RPTBAR: MOVEM 02,DBR ;P4=2000=DOTS ON RIGHT, =3000=BOTH SIDES
07500 ;=4000=DOTS ON LEFT
07600
07700
07800 MOVEM 3,.COMM.+=25 ; 04600 J4=J4-DBR*1000
07900 ; 04700 C DBR=1 HEAVY BAR IS ON R
08000 ; 04800 9400 RD=RDBR+RDBR*RSTJ2
08100 I9400: MOVE 1,[3.5]
08200 FMPR 1,STF+=8
08300 FADR 1,[3.5]
08400 MOVEM 1,ALF+7 ; TO SPACE THIN BAR FROM HEAVY
08500 MOVE 02,.COMM.+=26 ;05000 IF(J5.EQ.0)GO TO 400
08600 JUMPE 2,I400 ; 05100 C NEXT ADDS REPEAT DOTS TO DBL BAR.
08700 MOVE 3,.COMM.+=25 ;05200 L=J4
08800 MOVEM 3,ALF+=12 ; 05300 RJ=L/100
08900 IDIVI 3,144
09000 FLTR 3,3 ;TLC 3,232000
09100 ; FADR 3,3 IF(RJ.EQ.0)RJ=6.*RSTJ2
09200 JUMPN 3,.+3
09300 MOVSI 3,203600
09400 FMPR 3,STF+=8
09500 MOVEM 3,ALF+=11 ; HEAVY BAR WILL BE 5 LINES WIDE.
09600 MOVE .COMM.+4 ; 05600 RZ=R3
09700 MOVEM ALF+=18 ; 05700 J4=0
09800 SETZM .COMM.+=25 ; MUST BE 0 FOR DOTS IN 'NOTWRT'
09900 SKIPE 2,DBR ; J5 IS IN 2 YET!
10000 JRST .+4 ; 05900 IF(DBR.EQ.0)DBR=J5
10100 CAIL 2,4 ;IF(J5.GT.3)J5=3 -- CATCHES TYPOS!
10200 MOVEI 2,3
10300 MOVEM 02,DBR ;IF(DBR.EQ.0)=J5
10400 ; 06000 J5=0
10500 SETZM .COMM.+=26 ; J5=1 RPT ↑, =2 RPT ↑, =3 RPT ↑
10600 FSC 1,1 ;06200 RJA=RD*2.
10700 MOVEM 1,ALF+=14
10800 ;6300 TO SPACE DOTS, NOT ACCURATE FOR VERY SMALL OR VERY LARGE SIZE FACTORS
10900 MOVEM 2,ALF+6 ; 06400 JY=DBR
11000 CAIGE 2,2 ; 06500 IF(DBR.LT.2)GO TO 8400
11100 JRST I8400
11200 FADR 3,ALF+=18 ; 06600 R3=RJA+RJ+RZ
11300 FADR 3,ALF+=14
11400 MOVEM 3,.COMM.+4
11500 I7400: MOVE 11,ALF+=12 ; 06700 7400 DO 3400 K=J2,MOD(L,100)+J2-1
11600 IDIVI 11,=100
11700 ADD 12,.COMM.+3
11800 SOJ 12, ; 12 IS LIMIT
11900 MOVE 15,.COMM.+3
12000 I4: MOVE 02,STF(15) ;06800 RSTJ2=RSTFAC(K)
12100 MOVEM 02,STF+=8 ; 06900 POS=STFF(K)
12200 MOVE 02,POSI(15)
12300 MOVEM 02,POSI+=9 ; 07000 R4=6
12400 MOVSI 02,203600
12500 MOVEM 02,.COMM.+5 ;07100 CALL CENTX
12600 JSA 16,CENTX ;7200 C SPACES DOTS OUT FROM BAR
12700 ;07300 CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
12800 MOVE 11,STF+=8
12900 FADR 11,.COMM.+2
13000 JSA 16,RDRAW
13100 JUMP [1]
13200 JUMP [17.0]
13300 JUMP DAT+=69 ;EXTENDED FOR +65 TO +69 1/78
13400 JUMP STF+=8
13500 JUMP .COMM.+4
13600 JUMP 11
13700 JUMP STF+=8 ;7400 C GO GET THE DOT
13800 ; 07500 R4=8
13900 MOVSI 02,204400
14000 MOVEM 02,.COMM.+5 ;07600 CALL CENTX
14100 JSA 16,CENTX
14200 ;07700 3400 CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
14300 I3400: MOVE 11,STF+=8
14400 FADR 11,.COMM.+2
14500 JSA 16,RDRAW
14600 JUMP [1]
14700 JUMP [17.0]
14800 JUMP DAT+=69
14900 JUMP STF+=8
15000 JUMP .COMM.+4
15100 JUMP 11
15200 JUMP STF+=8
15300 CAMGE 15,12
15400 AOJA 15,I4
15500 SOS 2,ALF+6 ; JY=JY-1
15600 CAIGE 2,2 ; IF(JY.LT.2)GO TO 4400
15700 JRST I4400
15800 I8400: MOVE 3,STF+=8
15900 FSC 3,2
16000 FADR 3,ALF+=14 ; R3=RZ-RJA-4.*RSTJ2
16100 FSBR 3,ALF+=18
16200 MOVNM 3,.COMM.+4 ; 08100 GO TO 7400
16300 JRST I7400 ;8200 C DO I NEED ANY MORE RESETS????
16400 I4400: MOVE 02,ALF+=12 ;08300 4400 J4=L
16500 MOVEM 02,.COMM.+=25 ;08400 J7=RJ*DIS
16600 MOVE 02,PLTR+2
16700 FMPR 02,ALF+=11
16800 KIFIX 0,2 ;JSA 16,IFIX
16900 ; JUMP 2
17000 MOVEM 00,.COMM.+=28
17100 JRST I5400 ; 08500 GO TO 5400
17200 I400: MOVE 02,.COMM.+=26 ;08600 400 IF(J5.NE.0)GO TO 9400
17300 JUMPN 02,I9400 ; 08700 K=J4/100
17400 MOVE 4,.COMM.+=25
17500 IDIVI 4,144
17600 ;8800 C K IS FOR SPACING OF THIN BAR IN HEAVY-THIN ORDER
17700 FLTR 4,4 ;8900 J7=K*DIS
17800 FMPR 4,PLTR+2
17900 KIFIX 0,4 ;JSA 16,IFIX
18000 ; JUMP 4
18100 MOVEM 00,.COMM.+=28
18200 ;9000 C J7=NUM OF STROKES -- BASED ON FINAL SIZE FACTOR (DIS)
18300 I5400: SKIPGE 2,.COMM.+=25 ;09100 5400 L=MOD(J4,100)
18400 SETZ 2, ; IF(J4.LT.0)J4=0
18500 IDIVI 2,=100 ;ABOVE FOR INVIS. BARS (AT PRINT TIME)
18600 ;;; SKIPN 3 ; 09200 IF(L.EQ.0)L=1
18700 ;;; SKIPA
18800 SKIPE 3
18900 SOJ 3, ; 09300 L=L+J2-1
19000 ADD 3,.COMM.+3
19100 MOVEM 3,ALF+=12
19200 ;9400 C J4=401 MAKES 4X THICK BARLINE - ONE STAFF
19300 MOVE 02,[3.0] ; 09500 RA=RTF
19400 MOVEM 02,BM
19500 MOVE 3,ALF+=12
19600 CAIG 3,7 ; 09600 IF(L.LE.7)GO TO 2400
19700 JRST I2400 ; 09700 L=7
19800 MOVEI 3,7 ; 09800 RA=300.
19900 MOVSI 02,211454
20000 MOVEM 02,BM ; FOR EXTENDING BARS ABOVE STAFF 7
20100 I2400: MOVE 02,STF(3) ; 10100 RZ=R3Q
20200 MOVEM 02,OLDTOP ; 10000 2400 OLDTOP=RSTFAC(L)
20300 MOVE 02,ALF+5
20400 MOVEM 02,ALF+=18 ; 10200 C SAVE IT FOR DBL RPT BAR.
20500 MOVSI 02,206700 ; 10300 OLDTOP=STFF(L)+(RA+56.)*OLDTOP
20600 FADR 02,BM
20700 FMPR 02,OLDTOP
20800 FADR 02,POSI(3)
20900 MOVEM 02,OLDTOP ; 10400 1400 RA=1
21000 I1400: MOVSI 02,201400
21100 MOVEM 02,BM ; 10500 IF(PLT.GE.0)GO TO 140
21200 MOVE 02,PLTR
21300 JUMPGE 02,I140 ; 10600 J7=J7+1
21400 SKIPGE .COMM.+=25
21500 JRA 16,(16) ;DON'T PRINT INVIS BARS. (USED BY 'PAGE')
21600 AOS J7
21700 ;; MOVSI 02,201400 ; 10700 RA=1./DIS
21800 MOVE 2,PLTR+3 ;RA=XDIS
21900 MOVEM 02,BM ; 10800 C BAR LINES PLOT AS DOUBLE THICKNESS
22000
22100 I140: MOVE 02,ALF+5 ; 10900 140 RJX=R3Q
22200 MOVEM 02,ALF+=10 ; 11000 42 CALL LINES(R3Q,ALF+=8,3)
22300 I42: JSA 16,LINES
22400 JUMP ALF+5
22500 JUMP ALF+=8
22600 JUMP [3] ;11100 RJ=-1.
22700 MOVN 02,[1.0]
22800 MOVEM 02,ALF+=11 ; 11200 RW=OLDTOP
22900 MOVE 02,OLDTOP
23000 MOVEM 02,ALF+=9 ; 11300 406 CALL LINES(RJX,OLDTOP,2)
23100 I406: JSA 16,LINES
23200 JUMP ALF+=10
23300 JUMP OLDTOP
23400 JUMP [2] ; 11400 IF(J10.EQ.0)GO TO 411
23500 MOVE 02,J10
23600 JUMPE 02,I411 ;P10 WILL THICKEN VERTICAL (OR MOSTLY VERTICAL) LINES.
23700 MOVEM 02,.COMM.+=28 ;1600 J7=J10
23800 SETZM J10 ; 11700 J10=0
23900 ;; MOVSI 02,201400 ; 11800 RA=1./DIS
24000 MOVE 2,PLTR+3 ;RA=XDIS
24100 MOVEM 02,BM ; 11900 411 IF(J7.GT.0)GO TO 409
24200 I411: MOVE 02,.COMM.+=28
24300 JUMPG 02,I409
24400 SKIPG DBR ; 12000 IF(DBR.LE.0)RETURN
24500 JRA 16,(16) ; 12100 OLDTOP=RW
24600 MOVE 02,ALF+=9
24700 MOVEM 02,OLDTOP ; 12300 RA=RZ-RD
24800 MOVN 02,ALF+7
24900 FADR 02,ALF+=18 ; 12400 IF(DBR.NE.1)RA=RJX+RD-1.
25000 MOVEI 3,1
25100 CAMN 3,DBR
25200 JRST .+4
25300 MOVN 02,[1.0]
25400 FADR 02,ALF+7
25500 FADR 02,ALF+=10
25600 MOVEM 02,BM ; 12600 R3Q=RA
25700 MOVEM 02,ALF+5 ; 12500 DBR=DBR-2
25800 MOVNI 02,2
25900 ADDM 02,DBR ; 12700 GO TO 1400
26000 JRST I1400
26100
26200 I409: SKIPN .COMM.+7 ;IF(R6.EQ.0)GO TO 1402) 12900 C FOR 'HEAVY' LINE.
26300 JRST I402 ;P10= NUM. OF ADDITIONAL LINES.
26400 SOS J7 ; ****** ONLY GOOD FOR SLOPEOF LESS THAN 45 DEG.
26500 MOVE 2,J7 ;J10=J7-1
26600 MOVEM 2,J10
26700 MOVE 2,BM ;GET SHIFT INCREMENT (DEPENDS ON FINAL SIZE)
26800 MOVE 1,ALF+=8
26900 FSBR 1,OLDTOP ;AC1 HAS AMOUNT OF Y SHIFT IN LINE
27000 MOVMS 1
27100 MOVE 0,ALF+5
27200 FSBR 0,ALF+=10 ;AC0 HAS AMOUNT OF X SHIFT IN LINE
27300 MOVMS
27400 FSBR 0,1 ;IF AC0-AC1 IS .GE.0 GO TO I1402
27500 JUMPGE I1402
27600 FADRM 2,ALF+5 ;MOVE RIGHT ONE SCAN LINE FOR NEXT VECTOR
27700 FADRM 2,ALF+=10 ;ALF+5 AND ALF+=10 ARE THE 2 X COORDS.
27800 JRST I42
27900 I1402: FADRM 2,ALF+=8 ;MOVE UP ONE SCAN LINE FOR NEXT VECTOR
28000 FADRM 2,OLDTOP ;ALF+=8 AND OLDTOP ARE THE 2 Y COORDS.
28100 JRST I42 ;GO DRAW IT
28200
28300 I402: MOVE 02,BM ; 13000 409 RJX=RJX+RA HEAVIER BAR LINES
28400 FADRM 02,ALF+=10 ; 13100 CALL LINES(RJX,OLDTOP,2)
28500 JSA 16,LINES
28600 JUMP ALF+=10
28700 JUMP OLDTOP
28800 JUMP [2] ; 13200 J7=J7-1
28900 SOS J7 ; 13300 OLDTOP=RW
29000 MOVE 02,ALF+=9
29100 SKIPGE ALF+=11 ; 13400 IF(RJ)OLDTOP=RX
29200 MOVE 2,ALF+=8
29300 MOVEM 2,OLDTOP ; 13500 RJ=-RJ
29400 MOVNS 00,ALF+=11
29500 JRST I406 ; 13600 GO TO 406
29600 ;13900 C DRAWS BAR LINES. J4>0 CAUSES FULL LINE.
29700 ; 14700 C FOR CRESC., DECRESC.
29800 I300: MOVE 2,.COMM.+=8 ; 14800 300 IF(R7.EQ.0)R7=2.3
29900 JUMPG 2,.+7
30000 MOVE 3,[2.3]
30100 JUMPE 2,.+4
30200 CAME 2,[-1.0]
30300 JRST .+3
30400 MOVNS 3
30500 MOVEM 3,.COMM.+=8 ; 14900 IF(R7.EQ.-1.)R7=-2.3
30600 MOVM 2,.COMM.+=8 ; 15000 RA=ABS(R7/2.0)*RST7
30700 FSC 02,777777
30800 FMPR 2,ALF+3
30900 MOVEM 2,BM ; 15100 C AMOUNT OF SPREAD
31000 MOVE 3,ALF+5 ; 15200 RJ=R3Q
31100 MOVEM 3,ALF+=11 ; 15300 RX=RX-RST18+RD
31200 MOVN 02,ALF+4
31300 FADR 02,ALF+7
31400 FADRM 02,ALF+=8 ; 15400 IF(R8.NE.0)GO TO 302
31500 MOVE 02,R8
31600 JUMPN 02,I302 ; 15500 C JUMP TO MAKE BOX
31700 JSA 16,RHORZ ; 15600 R6=RHORZ(R6)
31800 JUMP .COMM.+7
31900 MOVEM 00,.COMM.+7 ;15700 IF(R7)GO TO 301
32000 MOVE 02,.COMM.+=8
32100 JUMPL 02,I301 ; 15800 RJ=R6
32200 MOVEM 0,ALF+=11 ; 15900 R6=R3Q
32300 MOVEM 3,.COMM.+7 ;301 CALL LINX(RJ,ALF+=8+RA,.COMM.+7,ALF+=8)
32400 I301: MOVE 14,BM
32500 FADR 14,ALF+=8
32600 JSA 16,LINX
32700 JUMP ALF+=11
32800 JUMP 14
32900 JUMP .COMM.+7
33000 JUMP ALF+=8 ; 16100 CALL LINES(RJ,ALF+=8-RA,2)
33100 MOVN 14,BM
33200 FADR 14,ALF+=8
33300 JSA 16,LINES
33400 JUMP ALF+=11
33500 JUMP 14
33600 JUMP [2] ;FOR CRESC, DECRESC:4 POS1, STF, HGT, 50, POS1, +OR-N(0=2.3,-1=-2.3)
33700 SKIPGE PLTR ; 16400 IF(PLT.GE.0)RETURN
33800 SKIPGE .COMM.+=29
33900 JRA 16,(16) ; THIS MAKES ALL CRESC. DBL THICKNESS AT PRINT TIME.
34000 ; 16600 IF(J8)RETURN
34100 ; 16700 RX=RX+1./DIS
34200 MOVE 2,PLTR+3 ;RX=XDIS
34300 FADRM 02,ALF+=8 ; 16800 J8=-1
34400 SETOM .COMM.+=29 ; 16900 C FOR DOUBLE THICKNESS
34500 ; 17000 GO TO 301
34600 JRST I301 ; 17200 302 R8=R8*RST7
34700 I302: MOVE 3,ALF+3
34800 FMPRM 3,.COMM.+=9 ;17300 R9=R9*RST7
34900 MOVE 3,ALF+3
35000 FMPRB 3,R9 ; 17400 IF(R9.EQ.0)R9=R8
35100 JUMPN 3,.+3
35200 MOVE 3,.COMM.+=9
35300 MOVEM 3,.COMM.+=10 ;17500 C R9=0 MAKES SQUARE
35400 MOVE 02,.COMM.+=9 ;17600 R3=R3Q-R8/2.
35500 FSC 02,777777
35600 FSBR 02,ALF+5
35700 MOVNM 02,.COMM.+4 ;17700 RX=RX-R9/2.
35800 FSC 3,777777
35900 FSBR 3,ALF+=8
36000 MOVNM 3,ALF+=8 ; 17710 OLDTOP=RX
36100 MOVNM 3,OLDTOP ; IF(R11.NE.0)OLDTOP=OLDTOP+R11*RST7
36200 MOVE 02,.COMM.+=12
36300 JUMPE 02,.+3
36400 FMPR 02,ALF+3
36500 FADRM 02,OLDTOP ; R11 IS OFFSET FOR PARALLELAGRAM
36600 ; 17800 J10=J10
36700 ; 17900 C DRAWS BOX, CENTER IS IN MIDDLE
36800 ; 18000 C 4,POSI+=9,STF,NT#,50,0,0,,SIZ1↑BY NT#S↑,SIZ2
36900 I1302: MOVE 14,.COMM.+4 ;18100 1302 CALL LINX(R3,ALF+=8,.COMM.+4+R8,OLDTOP)
37000 FADR 14,.COMM.+=9
37100 JSA 16,LINX
37200 JUMP .COMM.+4
37300 JUMP ALF+=8
37400 JUMP 14
37500 JUMP OLDTOP ;18200 CALL LINES(R3+R8,OLDTOP+R9,2)
37600 MOVE 14,.COMM.+4
37700 FADR 14,.COMM.+=9
37800 MOVE 13,OLDTOP
37900 FADR 13,.COMM.+=10
38000 JSA 16,LINES
38100 JUMP 14
38200 JUMP 13
38300 JUMP [2] ; 18300 CALL LINES(R3,ALF+=8+R9,2)
38400 MOVE 14,ALF+=8
38500 FADR 14,.COMM.+=10
38600 JSA 16,LINES
38700 JUMP .COMM.+4
38800 JUMP 14
38900 JUMP [2] ; 18400 CALL LINES(R3,ALF+=8,2)
39000 JSA 16,LINES
39100 JUMP .COMM.+4
39200 JUMP ALF+=8
39300 JUMP [2]
39400 SKIPN J10 ; 18500 IF(J10.EQ.0)RETURN
39500 JRA 16,(16)
39600 SOS J10 ; 18600 J10=J10-1
39700 ; 18700 RJ=1./DIS
39800 MOVE 3,PLTR+3 ;RJ=XDIS
39900 MOVEM 3,ALF+=11 ; 18800 R3=R3-RJ
40000 MOVN 02,ALF+=11
40100 FADRM 02,.COMM.+4 ;18900 R8=R8+RJ+RJ
40200 FADR 3,ALF+=11
40300 FADRM 3,.COMM.+=9 ;19000 RX=RX-RJ
40400 FADRM 02,ALF+=8 ; 19010 OLDTOP=OLDTOP-RJ
40500 FADRM 02,OLDTOP ; 19100 R9=R9+RJ+RJ
40600 FADRM 3,.COMM.+=10 ;19200 GO TO 1302
40700 JRST I1302 ;TO THICKEN BOXES. ;1401 R4=2.0
40800 I1401: MOVSI 02,202400
40900 MOVEM 02,.COMM.+5 ;19600 C FOR HEAVY BRACK.
41000 MOVE 2,ALF+3 ; 19700 RA=RST7
41100 MOVEM 02,BM
41200 MOVN 02,BM ; 19800 RX=RX-RA
41300 FADRM 02,ALF+=8 ; 19900 C THE BOTTOM
41400 MOVNI 1,1 ; 20000 L=J4+J2-1
41500 ADD 1,.COMM.+=25
41600 ADD 1,J2
41700 MOVE 3,[3.0] ; 20100 R6=RTF
41800 CAIG 1,7 ; 20200 IF(L.LE.7)GO TO 4401
41900 JRST I4401
42000 MOVEI 1,7 ; 20300 L=7
42100 MOVSI 3,211454 ; 20400 R6=300.
42200 I4401: MOVE 2,POSI(1) ; 20500 4401 RA=STFF(L)
42300 MOVEM 02,BM ; SAVE FOR POS. OF BRACK. END ON UPPER STAFF.
42400 MOVE 02,STF(1) ; 20700 RJY=RSTFAC(L)
42500 MOVEM 02,BM+2 ; OLDTOP=RA+R6*RJY+RJY*56.+RJY*RBX
42600 FADR 3,[63.0]
42700 FMPR 3,BM+2
42800 FADR 3,BM
42900 MOVEM 3,OLDTOP ; 20900 C THE TOP
43000 MOVSI 02,204460 ; 21000 R5=9.5
43100 MOVEM 02,.COMM.+6 ;21100 GO TO 2401
43200 JRST I2401 ; 21300 C DASHES
43300 I401: MOVN 02,ALF+4 ; 21400 401 POS=POS-RST18
43400 FADRM 02,POSI+=9 ; 21600 IF(J7.LE.0)GO TO 407
43500 MOVE 02,.COMM.+=28
43600 JUMPLE 02,I407
43700 CAIN 2,4 ; 21700 IF(J7.EQ.4)GO TO 1401
43800 JRST I1401
43900 CAIE 2,3 ; 21800 IF(J7.NE.3)GO TO 4001
44000 JRST I4001
44100 ;21900 NEXT IS FOR VARIABLE LARGE BRACKET. P7=3 P10=THICK. P5=HGT P6=P3
44200 I2401: MOVEI 02,3 ; 22000 2401 JA=3
44300 MOVEM 02,.COMM.+1 ;22100 IF(J10.EQ.0)J10=4
44400 MOVE 02,J10
44500 JUMPN 02,.+5
44600 MOVSI 02,203600 ;6.0
44700 FMPR 2,PLTR+2 ;*DIS THICKNES FOLLOWS PLOTTER SIZE
44800 FMPR 2,STF+=8 ;*RSTJ2 AND STAFF SIZE
44900 KIFIX 2,2
45000 MOVEM 02,J10 ; DEFAULT VALUE FOR THICKNESS =4*SIZE FACT.
45100 MOVN 02,[0.33] ; 22300 R4=R4-RBR
45200 FADRM 02,.COMM.+5 ;22400 J9=0
45300 SETZM .COMM.+=30 ; 22500 J5=35
45400 MOVEI 02,43
45500 MOVEM 02,.COMM.+=26 ;22600 C THE NUM FOR THE LITTLE END ITEMS
45600 MOVSI 02,202600 ; 22800 R6=3
45700 MOVEM 02,.COMM.+7 ;22900 R7=0
45800 SETZM .COMM.+=8;DOES LOWER ONE FIRST. ITEM IS IN 'CLEFC.DMD' ON DAT.LCS
45900 SETZM R8 ;R8 MUST BE 0 FOR CLEFS (ELSE IT ACTIVATES THICKENER)
46000 MOVE 02,.COMM.+=29 ; 23100 IF(J8.NE.2)CALL CLEFS
46100 MOVEM 2,RH ;SAVE J8 IN RH (J8 WIPED OUT IN CLEFS)
46200 CAIE 02,2
46300 JSA 16,CLEFS ;P8=1=BOTTOM 1/2 BRACK. ONLY: =2=TOP 1/2 ONLY: 0=COMPLETE
46400 MOVN 3,[0.33] ;23300 R4=R5-RBR
46500 FADR 3,.COMM.+6
46600 MOVEM 3,.COMM.+5 ; 23400 R6=3
46700 MOVSI 02,202600
46800 MOVEM 02,.COMM.+7 ;23500 R7=-3
46900 MOVNM 02,.COMM.+=8 ;23600 C TURNS IT UPSIDE DOWN.
47000 MOVEI 02,4 ;23800 IF(J7.NE.4)GO TO 3401
47100 CAME 02,.COMM.+=28
47200 JRST I3401 ; 23900 POS=RA
47300 MOVE 02,BM
47400 MOVEM 02,POSI+=9 ; 24000 R4=R4*RJY/RSTJ2
47500 FMPR 3,BM+2
47600 FDVR 3,STF+=8
47700 MOVEM 3,.COMM.+5 ;TO ADJUST HEIGHT OF BRACK END WHEN STAVES ARE DIFF. SIZES.
47800 I3401: MOVEI 02,1 ; 24200 3401 IF(J8.NE.1)CALL CLEFS
47900 CAME 02,RH ; RH IS CURRENTLY J8 (INTEGER I.E.)
48000 JSA 16,CLEFS ;24300 R3Q=R3Q-12.0*RSTJ2
48100 MOVSI 02,204600
48200 FMPR 02,STF+=8
48300 FSBRM 02,ALF+5
48400 MOVNS 00,ALF+5 ; 24400 IF(J7.NE.4)GO TO 407
48500 MOVEI 02,4
48600 CAME 02,.COMM.+=28
48700 JRST I407 ; 24500 J7=0
48800 SETZM .COMM.+=28 ; 24600 GO TO 140
48900 JRST I140 ; 24800 4002 J5=5
49000 I4002: MOVEI 02,5 ;FOR CURVY BRACKET. P8 CAN CHANGE WIDTH.
49100 MOVEM 02,.COMM.+=26 ; 25100 J4=J4+J2-1
49200 MOVNI 3,1
49300 ADD 3,.COMM.+3
49400 ADDB 3,.COMM.+=25 ;R7=(.3136*RSTFAC(J4)+.0056*(STFF(J4)-STFF(J2)))/RSTJ2
49500 MOVE 02,[0.3136]
49600 FMPR 02,STF(3)
49700 MOVE 04,POSI(3)
49800 MOVE 03,J2
49900 FSBR 04,POSI(3)
50000 FMPR 04,[0.0056]
50100 FADR 02,4
50200 FDVR 02,STF+=8
50300 MOVEM 02,.COMM.+=8
50400 ;25300 .0056=.0392/7.(THE MAGIC NUM FOR VERT SIZE OF BRACK.) .3136=8*.0392
50500 ;25400 ADD DIST BETWEEN BOTTOM OF STAVES TO HEIGHT OF TOP STAFF
50600 MOVE 2,.COMM.+=9 ; 25500 IF(R6.EQ.0)R6=1.+R7/20.
50700 SETZM .COMM.+=9 ;***** USE P8 FOR WIDTH FACTOR!! *****
50800 SETZM .COMM.+=29 ;J8=0
50900 JUMPN 2,.+3 ;P6=P8; P8=0
51000 FDVR 02,[20.0]
51100 FADRI 02,201400
51200 MOVEM 02,.COMM.+7 ;25600 JA=3
51300 MOVEI 02,3
51400 MOVEM 02,.COMM.+1 ;25700 R4=2.3
51500 MOVE 02,[2.3]
51600 MOVEM 02,.COMM.+5 ;BECAUSE BRACK DOESN'T REALLY GO UP FROM 0 ?!?X*↑
51700 ; 25900 CALL CLEFS
51800 JSA 16,CLEFS ; 26000 RETURN
51900 JRA 16,(16)
52000 I4001: CAIN 2,5 ; 26200 4001 IF(J7.EQ.5)GO TO 4002
52100 JRST I4002 ; J7 IS IN AC2
52200 MOVE 02,.COMM.+=9 ;26300 IF(R8.LE.0)R8=.8
52300 JUMPG 02,.+3 ;NO NEG. NUMBS!!!! 2/78
52400 MOVE 02,[0.8]
52500 MOVEM 02,.COMM.+=9 ;26400 C P8 CAN SET SIZE OF DASH
52600 MOVE 02,[5.96] ; 26402 RZ=5.96*RSTJ2
52700 FMPR 02,STF+=8
52800 MOVEM 02,ALF+=18 ; 26405 RJ=R8*RZ
52900 FMPR 02,.COMM.+=9
53000 MOVEM 02,ALF+=11 ;26410 RZ=R9*RZ
53100 MOVE 3,.COMM.+=10
53200 FMPRM 3,ALF+=18
53300 SKIPG .COMM.+=10 ; 26420 IF(R9.LE.0)RZ=RJ
53400 MOVEM 02,ALF+=18
53500 ;26430 P9 SETS SPACE BETWEEN DASHES. (CAN BE DIFFERENT FROM P8)
53600 ; 26440 R8=RJ
53700 MOVEM 02,.COMM.+=9 ;26450 R9=RZ
53800 MOVE 02,ALF+=18
53900 MOVEM 02,.COMM.+=10 ;26500 RD=RD+POS
54000 MOVE 02,POSI+=9
54100 FADRB 02,ALF+7 ; 26600 RJX=RD
54200 MOVEM 02,ALF+=10 ; 27100 RJY=RD
54300 MOVEM 02,BM+2
54400 ;26700 =1 =DASHES, P6=P3=VERTICAL; P4=P5=HORIZ.; OTHERWISE SLOPE.
54500 JSA 16,RHORZ ; 26800 J6=ROFF(RHORZ(R6))
54600 JUMP .COMM.+7
54700 MOVE 4,0
54800 JSA 16,ROFF
54900 JUMP 4
55000 KIFIX 0,0
55100 MOVEM 00,.COMM.+=27
55200 SUBM 0,.COMM.+=24 ; 26900 J3=J6-J3
55300 ; 27000 J4=J5-J4
55400 MOVE 2,.COMM.+=6 ;NOW J4=R5-R4 (J4 IS FLTING PT)
55500 FSBR 2,.COMM.+5
55600 MOVEM 2,.COMM.+=25 ; CHECKS FOR TILT, USED LATER
55700 FLTR 0,.COMM.+=27 ;MOVE .COMM.+=27 27200 C SAVE FOR THICK LINES
55800 ; TLC 0,232000 ; 27300 RA=J6
55900 ; FADR 0,0
56000 MOVEM 00,BM ; 27400 C RA IS HORIZ. GOAL FOR DASHES
56100 ; 27500 402 OLDTOP=POS+R5*RST7
56200 MOVE 02,ALF+3 ; LABEL 402 NOT USED
56300 FMPR 02,.COMM.+6
56400 FADR 02,POSI+=9
56500 MOVEM 02,OLDTOP ; 27600 IF(J4.EQ.0)GO TO 41
56600 MOVE 3,.COMM.+=25
56700 JUMPE 3,I41 ; 27700 RH=OLDTOP-RD
56800 ; 27800 C TOTAL HEIGHT DIFF.
56900 MOVN 3,.COMM.+4 ; 27900 RX=RA-R3
57000 FADR 3,BM
57100 MOVEM 3,ALF+=8 ; 28000 C TOTAL LENGTH DIFF.
57200 FSBR 2,ALF+7 ; 28100 RH=RH/RX
57300 FDVR 02,ALF+=8
57400 MOVEM 02,RH# ; 28200 41 L=3
57500 I41: MOVEI 02,3
57600 MOVEM 02,ALF+=12 ;28300 K=2
57700 MOVEI 02,2
57800 MOVEM 02,ALF+=13 ;28400 416 CALL LINES(R3Q,ALF+7,ALF+=12)
57900 I416: JSA 16,LINES
58000 JUMP ALF+5
58100 JUMP ALF+7
58200 JUMP ALF+=12 ; 28405 IF(J3.EQ.0)GO TO 412
58300 MOVE 02,.COMM.+=24
58400 JUMPE 02,I412 ;28407 C JUMP FOR VERT. DASH
58500 MOVE 3,ALF+5 ;(R3Q) ;28410 IF(J3.GT.0)GO TO 422
58600 JUMPG 02,I422 ; 28420 IF(R3Q.LE.RA)GO TO 413
58700 CAMG 3,BM
58800 JRST I413 ; 28425 C THIS IF P6 IS LESS THAN P3
58900 ; 28430 R3Q=R3Q-RJ
59000 MOVN 02,ALF+=11 ; 28440 GO TO 423
59100 JRST I423 ; 28500 422 IF(R3Q.GE.RA)GO TO 413
59200 I422: CAML 3,BM
59300 JRST I413 ; 28600 C JUMP IF ALL DONE
59400 MOVE 02,ALF+=11 ; 28700 R3Q=R3Q+RJ
59500 I423: FADRB 02,ALF+5 ;28710 423 IF(J4.NE.0)RD=RJY+RH*(R3Q-R3)
59600 MOVE 3,.COMM.+=25 ; J4 HAS TILT(SEE I402 -)
59700 JUMPE 3,.+5
59800 FSBR 02,.COMM.+4
59900 FMPR 02,RH
60000 FADR 02,BM+2
60100 MOVEM 02,ALF+7 ;28720 FINDS HEIGHT OF RIGHT SIDE OF SLOPE
60200 I414: MOVE 2,ALF+=12 ; 28800 414 CALL EXCH(L,ALF+=13)
60300 EXCH 2,ALF+=13
60400 MOVEM 2,ALF+=12
60500 MOVE 2,ALF+=11 ; 28810 CALL EXCH(RJ,ALF+=18)
60600 EXCH 2,ALF+=18
60700 MOVEM 2,ALF+=11 ; 28820 C EXCH. SPACE AND DASH SIZE.
60800 JRST I416 ; 28900 GO TO 416
60900 I412: MOVE 1,ALF+7 ;28950 412 IF(J4.GT.0)GO TO 424
61000 MOVE 02,.COMM.+=25
61100 JUMPG 02,I424 ; 28960 IF(RD.LE.OLDTOP)GO TO 413
61200 CAMG 1,OLDTOP
61300 JRST I413 ; 28970 RD=RD-RJ
61400 MOVN 02,ALF+=11
61500 FADRM 02,ALF+7 ; 28980 C THIS IF P5 IS LESS THAN P4.
61600 JRST I414 ; 28990 GO TO 414
61700 I424: CAML 1,OLDTOP ;29000 424 IF(RD.GE.OLDTOP)GO TO 413
61800 JRST I413 ; 29100 C JUMP IF DONE
61900 MOVE 02,ALF+=11 ; 29200 RD=RD+RJ
62000 FADRM 02,ALF+7 ; 29300 GO TO 414
62100 JRST I414 ; 29400 413 IF(J10.GT.0)GO TO 420
62200 I413: MOVE 02,J10
62300 JUMPG 02,I420
62400 SKIPN .COMM.+=32 ; 29410 IF(J11.EQ.0)RETURN
62500 JRA 16,(16)
62600 SKIPGE .COMM.+=24 ; 29415 IF(J3)RJ=-RJ
62700 MOVNS 00,ALF+=11 ; 29420 IF(L.EQ.3)R3Q=R3Q-RJ
62800 MOVEI 02,3
62900 CAME 02,ALF+=12
63000 JRST .+3
63100 MOVN 02,ALF+=11
63200 FADRM 02,ALF+5 ; 29430 RX=R8
63300 MOVE 02,.COMM.+=9
63400 MOVEM 02,ALF+=8
63500 SKIPGE .COMM.+=32 ; 29440 IF(J11)RX=-RX
63600 MOVNS 00,ALF+=8 ;29450 CALL LINX(R3Q,ALF+7,ALF+5,ALF+7+RX)
63700 MOVE 14,ALF+7
63800 FADR 14,ALF+=8
63900 JSA 16,LINX
64000 JUMP ALF+5
64100 JUMP ALF+7
64200 JUMP ALF+5
64300 JUMP 14 ; 29460 C PUTS BRACK END ON DASHED LINE. (P11=1 OR -1)
64400 ; 29470 RETURN
64500 JRA 16,(16) ; 29500 C NEXT FOR THICK DASHES
64600 ; 29600 420 J10=J10-1
64700 I420: SOS J10 ; 29650 RJ=1./DIS
64800 MOVE 3,PLTR+3 ;AC3=XDIS
64900 ;; FDVR 3,PLTR+2 ; 29700 IF(J3.EQ.0)GO TO 415
65000 MOVE 02,.COMM.+=24
65100 JUMPE 02,I415 ; 29800 R3Q=R3
65200 MOVE 02,.COMM.+4
65300 MOVEM 02,ALF+5 ; 29900 RJY=RJY+RJ
65400 FADRB 3,BM+2 ;29950 RD=RJY
65500 MOVEM 3,ALF+7 ;30000 GO TO 417
65600 JRST I417 ; 30100 415 R3Q=R3Q+RJ
65700 I415: FADRM 3,ALF+5 ; 30200 RD=RJX
65800 MOVE 02,ALF+=10
65900 MOVEM 02,ALF+7 ;30210 417 RJ=R8
66000 I417: MOVE 02,.COMM.+=9
66100 MOVEM 02,ALF+=11 ; 30220 RZ=R9
66200 MOVE 02,.COMM.+=10
66300 MOVEM 02,ALF+=18 ; 30230 C FOR THICK DASHES.
66400 ; 30300 GO TO 41
66500 JRST I41 ; 30600 407 RX=RD+POS
66600 I407: MOVE 02,ALF+7
66700 FADR 02,POSI+=9
66800 MOVEM 02,ALF+=8 ; 30700 OLDTOP=R5*RST7+POS
66900 MOVE 02,ALF+3
67000 FMPR 02,.COMM.+6
67100 FADR 02,POSI+=9
67200 MOVEM 02,OLDTOP
67300 MOVMS .COMM.+=9 ;***** R8=ABS(R8) NO NEG, TOLERATED!!! 2/78
67400 MOVE 3,.COMM.+=28 ; 30800 IF(J7.EQ.3)GO TO 140
67500 CAIN 3,3
67600 JRST I140 ; 30900 CALL NOZERO(R9)
67700 JSA 16,NOZERO
67800 JUMP .COMM.+=10
67900 CAMN 3,[-1] ; 31000 IF(J7.EQ.-1)GO TO 408
68000 JRST I408
68100 ; 31100 C FOR 'TR' J7=-2, 'ARPEGG' J7=-1, STRAIGHT LINES J7=0
68200 ; 31200 CC WHY THE IFIX???? RJX=IFIX(RHORZ(R6))
68300 JSA 16,RHORZ ; 31300 RJX=IFIX(ROFF(RHORZ(R6)))
68400 JUMP .COMM.+7
68500 MOVE 4,
68600 JSA 16,ROFF
68700 JUMP 4
68800 KIFIX 0,0 ;MOVE 4,
68900 ; JSA 16,IFIX
69000 ; JUMP 4
69100 FLTR 0,0 ;TLC 0,232000
69200 ;FADR 0,0
69300 MOVEM 00,ALF+=10
69400 ;31400 C ALL THIS CRAP SO IT WILL MATCH UP WITH P3 WHEN NECESSARY.
69500 MOVE 02,.COMM.+=28 ;31500 IF(J7.EQ.0)GO TO 42
69600 JUMPE 3,I42 ; 31600 OLDTOP=R9*RST7+RX
69700 MOVE 02,ALF+3
69800 FMPR 02,.COMM.+=10
69900 FADR 02,ALF+=8
70000 MOVEM 02,OLDTOP ; 31700 CALL NOZERO(R8)
70100 JSA 16,NOZERO
70200 JUMP .COMM.+=9 ; 31800 4041 RZ=RX
70300 I4041: MOVE 02,ALF+=8
70400 MOVEM 02,ALF+=18 ; 31900 RH=OLDTOP
70500 MOVE 14,OLDTOP
70600 MOVEM 14,RH ;32000 C SAVE FOR THICK WIGGLES
70700 JSA 16,LINES ;32100 CALL LINES(R3Q,ALF+=8,3)
70800 JUMP ALF+5
70900 JUMP ALF+=8
71000 JUMP [3] ; 32200 C DRAWS STRAIGHT LINES. ETC.
71100 MOVE 02,ALF+5 ; 32300 R9=R3Q
71200 MOVEM 02,.COMM.+=10 ;32400 RJ=OLDTOP
71300 MOVEM 14,ALF+=11 ; 32500 RW=3.*RSTJ2*R8
71400 MOVSI 02,202600
71500 FMPR 02,STF+=8
71600 FMPR 02,.COMM.+=9
71700 MOVEM 02,ALF+=9 ; 32600 RA=RW*2.5
71800 MOVSI 02,202500
71900 FMPR 02,ALF+=9
72000 MOVEM 02,BM ; P8=HORZ. WIGGLE SIZE; P9=VERT. SIZE
72100 I404: MOVE 02,BM ; 32800 404 R9=R9+RA
72200 FADRM 02,.COMM.+=10 ;32900 CALL LINES(R9,ALF+=11,2)
72300 JSA 16,LINES
72400 JUMP .COMM.+=10
72500 JUMP ALF+=11
72600 JUMP [2] ; 33000 R9=R9+RW
72700 MOVE 14,ALF+=9
72800 FADRB 14,.COMM.+=10 ;33100 CALL LINES(R9,ALF+=11,2)
72900 JSA 16,LINES
73000 JUMP .COMM.+=10
73100 JUMP ALF+=11
73200 JUMP [2]
73300 I405: MOVE ALF+=8 ; 33200 405 CALL EXCH(RX,ALF+=11)
73400 EXCH ALF+=11
73500 MOVEM ALF+=8
73600 CAMGE 14,ALF+=10 ; 33300 IF(R9.LT.RJX)GO TO 404
73700 JRST I404
73800 SKIPG .COMM.+=31 ; 33400 IF(J10.LE.0)RETURN
73900 JRA 16,(16)
74000 MOVE 2,PLTR+3 ;OLDTOP=XDIS
74100 MOVEM 02,OLDTOP ; 33500 RX=RZ+OLDTOP
74200 FADR 02,ALF+=18
74300 MOVEM 02,ALF+=8 ; 33600 OLDTOP=RH+OLDTOP
74400 MOVE 02,RH
74500 FADRM 02,OLDTOP
74600 SOS .COMM.+=31 ; 33700 J10=J10-1
74700 JRST I4041 ; 33800 GO TO 4041
74800 ; 33900 C P10= + NUM OF THICKNESSES TO WIGGLE
74900 I408: MOVE 02,ALF+=8 ;34100 408 IF(RX.GT.OLDTOP)CALL EXCH(RX,OLDTOP)
75000 CAMLE 2,OLDTOP
75100 EXCH 2,OLDTOP
75200 MOVEM 2,ALF+=8 ; 34200 RZ=R9*RSTJ2*5.96
75300 MOVE 02,STF+=8
75400 FMPR 02,.COMM.+=10
75500 FMPR 02,[5.96]
75600 MOVEM 02,ALF+=18 ;USE P9 TO SET WIGGLE WIDTH. P8 TO SET HGT.
75700 JSA 16,NOZERO ; 34400 CALL NOZERO(R8)
75800 JUMP .COMM.+=9 ; 34500 RD=R8*RST7*.5
75900 MOVE 02,ALF+3
76000 FMPR 02,.COMM.+=9
76100 FSC 02,777777
76200 MOVEM 02,ALF+7 ; 34600 RJ=RD
76300 MOVEM 02,ALF+=11 ; 34700 IF(RD.LT.1.)RD=1.
76400 MOVSI 02,201400
76500 CAMLE 02,ALF+7
76600 MOVEM 2,ALF+7 ; 34800 421 R9=RX
76700 I421: MOVE 02,ALF+=8
76800 MOVEM 02,.COMM.+=10 ;34900 RW=R3Q
76900 MOVE 02,ALF+5
77000 MOVEM 02,ALF+=9 ; 35000 RA=RZ+R3Q
77100 FADR 02,ALF+=18
77200 MOVEM 02,BM ;35100 CALL LINES(RW,.COMM.+=10,3)
77300 JSA 16,LINES
77400 JUMP ALF+=9
77500 JUMP .COMM.+=10
77600 JUMP [3] ; 35200 410 R9=R9+RJ
77700 I410: MOVE 02,ALF+=11
77800 FADRM 02,.COMM.+=10 ;35300 CALL LINES(RA,.COMM.+=10,2)
77900 JSA 16,LINES
78000 JUMP BM
78100 JUMP .COMM.+=10
78200 JUMP [2] ; 35400 R9=R9+RD
78300 MOVE 02,ALF+7
78400 FADRM 02,.COMM.+=10 ;35500 CALL LINES(RA,.COMM.+=10,2)
78500 JSA 16,LINES
78600 JUMP BM
78700 JUMP .COMM.+=10
78800 JUMP [2]
78900 MOVE BM ; 35600 CALL EXCH(RA,ALF+=9)
79000 EXCH ALF+=9
79100 MOVEM BM ; 35700 IF(R9.LT.OLDTOP)GO TO 410
79200 MOVE 02,OLDTOP
79300 CAMLE 02,.COMM.+=10
79400 JRST I410
79500 SKIPG .COMM.+=31 ; 35800 IF(J10.LE.0)RETURN
79600 JRA 16,(16) ; 35900 R3Q=R3Q+1./DIS
79700 MOVE 2,PLTR+3 ;XDIS
79800 FADRM 02,ALF+5
79900 SOS .COMM.+=31 ; 36000 J10=J10-1
80000 JRST I421 ; 36100 GO TO 421
80100 JRA 16,(16) ;36200 C VERTICAL WIGGLE P10=+ NUM OF THICKNESSES.
80200 END ; 36300 END